<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://ns.iringtools.org/protocol" elementFormDefault="qualified" targetNamespace="http://ns.iringtools.org/protocol" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="http://localhost:52786/Service.svc?xsd=xsd1" namespace="http://rdl.rdlfacade.org/data#" />
  <xs:import schemaLocation="http://localhost:52786/Service.svc?xsd=xsd3" namespace="http://ns.iringtools.org/library" />
  <xs:import schemaLocation="http://localhost:52786/Service.svc?xsd=xsd4" namespace="http://schemas.datacontract.org/2004/07/org.iringtools.library" />
  <xs:import schemaLocation="http://localhost:52786/Service.svc?xsd=xsd5" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
  <xs:element name="Get">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="graphName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="identifier" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q1="http://rdl.rdlfacade.org/data#" minOccurs="0" name="GetResult" nillable="true" type="q1:DataTransferObject" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetList">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="graphName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetListResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q2="http://rdl.rdlfacade.org/data#" minOccurs="0" name="GetListResult" nillable="true" type="q2:ArrayOfDataTransferObject" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDictionary">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDictionaryResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q3="http://ns.iringtools.org/library" minOccurs="0" name="GetDictionaryResult" nillable="true" type="q3:DataDictionary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RefreshDictionary">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RefreshDictionaryResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/org.iringtools.library" minOccurs="0" name="RefreshDictionaryResult" nillable="true" type="q4:Response" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMapping">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="projectName" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="applicationName" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMappingResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="GetMappingResult" type="tns:Mapping" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="Mapping">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="GraphMaps" type="tns:ArrayOfGraphMap" />
      <xs:element minOccurs="0" maxOccurs="1" name="ValueMaps" type="tns:ArrayOfValueMap" />
      <xs:element minOccurs="0" maxOccurs="1" name="Version" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ArrayOfGraphMap">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="GraphMap" nillable="true" type="tns:GraphMap" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="GraphMap">
    <xs:complexContent mixed="false">
      <xs:extension base="tns:ClassMap">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="DataObjectMaps" type="tns:ArrayOfDataObjectMap" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ClassMap">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="TemplateMaps" type="tns:ArrayOfTemplateMap" />
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="classId" type="xs:string" />
    <xs:attribute name="identifier" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="ArrayOfTemplateMap">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="TemplateMap" nillable="true" type="tns:TemplateMap" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TemplateMap">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="RoleMaps" type="tns:ArrayOfRoleMap" />
    </xs:sequence>
    <xs:attribute name="type" type="tns:TemplateType" use="required" />
    <xs:attribute name="templateId" type="xs:string" />
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="classRole" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="ArrayOfRoleMap">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="RoleMap" nillable="true" type="tns:RoleMap" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="RoleMap">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="1" name="ClassMap" type="tns:ClassMap" />
    </xs:sequence>
    <xs:attribute name="roleId" type="xs:string" />
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="dataType" type="xs:string" />
    <xs:attribute name="propertyName" type="xs:string" />
    <xs:attribute name="valueList" type="xs:string" />
  </xs:complexType>
  <xs:simpleType name="TemplateType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Property" />
      <xs:enumeration value="Relationship" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ArrayOfDataObjectMap">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="DataObjectMap" nillable="true" type="tns:DataObjectMap" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="DataObjectMap">
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="inFilter" type="xs:string" />
    <xs:attribute name="outFilter" type="xs:string" />
  </xs:complexType>
  <xs:complexType name="ArrayOfValueMap">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ValueMap" nillable="true" type="tns:ValueMap" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ValueMap">
    <xs:attribute name="valueList" type="xs:string" />
    <xs:attribute name="internalValue" type="xs:string" />
    <xs:attribute name="modelURI" type="xs:string" />
  </xs:complexType>
  <xs:element name="UpdateMapping">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="projectName" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="applicationName" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="mapping" type="tns:Mapping" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateMappingResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="UpdateMappingResult" type="tns:ArrayOfString" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="ArrayOfString">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Generate">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GenerateResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q5="http://schemas.datacontract.org/2004/07/org.iringtools.library" minOccurs="0" name="GenerateResult" nillable="true" type="q5:Response" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ClearStore">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ClearStoreResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q6="http://schemas.datacontract.org/2004/07/org.iringtools.library" minOccurs="0" name="ClearStoreResult" nillable="true" type="q6:Response" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RefreshGraph">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="graphName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RefreshGraphResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q7="http://schemas.datacontract.org/2004/07/org.iringtools.library" minOccurs="0" name="RefreshGraphResult" nillable="true" type="q7:Response" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RefreshAll">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RefreshAllResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q8="http://schemas.datacontract.org/2004/07/org.iringtools.library" minOccurs="0" name="RefreshAllResult" nillable="true" type="q8:Response" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Pull">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
        <xs:element xmlns:q9="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="request" nillable="true" type="q9:ArrayOfKeyValueOfstringstring" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="PullResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q10="http://schemas.datacontract.org/2004/07/org.iringtools.library" minOccurs="0" name="PullResult" nillable="true" type="q10:Response" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateDatabaseDictionary">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q11="http://ns.iringtools.org/library" minOccurs="0" name="databaseDictionary" nillable="true" type="q11:DatabaseDictionary" />
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateDatabaseDictionaryResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q12="http://schemas.datacontract.org/2004/07/org.iringtools.library" minOccurs="0" name="UpdateDatabaseDictionaryResult" nillable="true" type="q12:Response" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DTORequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="applicationName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="graphName" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="identifier" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="projectName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DTOResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q13="http://rdl.rdlfacade.org/data#" minOccurs="0" name="dto" nillable="true" type="q13:DataTransferObject" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DTOListResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q14="http://rdl.rdlfacade.org/data#" minOccurs="0" name="dtoList" nillable="true" type="q14:ArrayOfDataTransferObject" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>